package com.zzdzz.fileencryption.service;

import org.springframework.http.HttpHeaders;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

public interface FileEncryptionService {

    /**
     * 处理文件（加密或解密）
     * @param file 待处理的文件
     * @param isEncrypt true表示加密，false表示解密
     * @return 处理后的文件字节数组
     * @throws IOException 处理文件时可能抛出的异常
     */
    byte[] processFile(MultipartFile file, boolean isEncrypt) throws IOException;

    /**
     * 生成新的文件名
     * @param originalFilename 原始文件名
     * @param isEncrypt true表示加密，false表示解密
     * @return 新的文件名
     */
    String generateNewFilename(String originalFilename, boolean isEncrypt);

    /**
     * 创建响应头，处理文件名编码
     * @param filename 文件名
     * @return 包含正确编码文件名的响应头
     */
    HttpHeaders createResponseHeaders(String filename);
}
